/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model;

import java.util.Objects;

/**
 *	Classe que implementa a entidade Fornecedor.
 * 
 * @author Marcos Vinicius Rogowski
 * 
 */
public class Fornecedor {
	private String nome;
	private String cnpj;
	private String telefone;
	private String endereco;
	private String email;

	/**
	 *	Contrutor da classe
	 * 
	 * @param nome
	 * @param cnpj
	 */
	public Fornecedor(String nome, String cnpj) {
		this.nome = nome;
		this.cnpj = cnpj;
	}

	/**
	 * Construtor da classe
	 * 
	 * @param nome
	 * @param cnpj
	 * @param telefone
	 * @param endereco 
	 */
	
	public Fornecedor(String nome, String cnpj, String telefone, String endereco) {
		this.nome = nome;
		this.cnpj = cnpj;
		this.telefone = telefone;
		this.endereco = endereco;
	}

	
	
	/**
	 * Contrutor da classe
	 * 
	 * @param nome		
	 * @param cnpj
	 * @param telefone
	 * @param endereco
	 * @param email 
	 */
	public Fornecedor(String nome, String cnpj, String telefone, String endereco, String email) {
		this(nome, cnpj, telefone, endereco);
		this.email = email;
	}

	
	/**
	 * Getters e Setter para os atributos
	 * 
	 */
	
	public String getNome() {
		return this.nome;
	}

	public String getCnpj() {
		return this.cnpj;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	
	/**
	 * Método que gera identificado único para o objeto.
	 * 
	 * @return hashCode
	 */
	@Override
	public int hashCode() {
		int hash = 3;
		hash = 79 * hash + Objects.hashCode(this.nome);
		hash = 79 * hash + Objects.hashCode(this.cnpj);
		return hash;
	}

	
	/**
	 * Veriica se os objetos são iguais.
	 * 
	 * @param obj
	 * @return 
	 */
	@Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (getClass() != obj.getClass()) {
			return false;
		}
		final Fornecedor other = (Fornecedor) obj;
		if (!Objects.equals(this.nome, other.nome)) {
			return false;
		}
		if (!Objects.equals(this.cnpj, other.cnpj)) {
			return false;
		}
		return true;
	}

	/**
	 * Serializa os atributos do objeto em uma string.
	 * 
	 * @return 
	 */
	@Override
	public String toString() {
		return "Fornecedor{" + 
					"nome="			+ nome		+ ", " +
					"cnpj="			+ cnpj		+ ", " +
					"telefone="		+ telefone	+ ", " +
					"endereco="		+ endereco	+ ", " +
					"email="		+ email		+
				'}';
	}
	
}
